home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
M-More Monthly Disks
/
(c)m9.d64
/
super pac hunt.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
10KB
|
321 lines
50 MN=13
100 POKE53280,0:MEN(1)=3:MEN(2)=3:LEVEL(1)=1:LEVEL(2)=1
200 POKE21,0:PRINT"[147]":POKE53281,0:PRINT"":GOSUB24500:S=54272:GOSUB16400
300 PRINT"[147]":FORX=1TO22:PRINT"[166].............................[166]":POKES+X,0:NEXT
400 FORX=1TO31:PRINT"[166]";:NEXT:QQ(1)=0:QQ(2)=0:EE(1)=0:EE(2)=0:XN=0:AT=0
500 PRINT"":FORX=1TO31:PRINT"[166]";:NEXT:LL(1)=3:LL(2)=3
577 POKE2040,A
600 X=40:Y=63:X1=224:Y1=72:X2=40:Y2=198
700 PRINT"PLAYER#"
800 PRINT" 1": U=1:AX=1
900 PRINT"SCORE 1"
1000 PRINT" [146]"
1100 PRINT"SCORE 2"
1200 PRINT" [146]"
1300 PRINT"MEN"MEN(AX)
1400 PRINT"LEVEL"LEVEL(AX)
1500 PRINT"HIGH"
1600 PRINT"SCORE"
1700 PRINT""BR$
1800 PRINT""HS
1900 PRINT"";TAB(33)"PANIC"LL(AX)
2000 PRINT"BY MIKE MUNNELLY"
2100 V=53248:POKEV+21,7
2200 POKEV+39,7:POKEV+40,15:POKEV,X:POKEV+1,Y:POKEV+2,X1
2300 POKEV+41,12:POKEV+4,X2
2400 POKE2040,13:POKE2041,14:POKE2042,15
2500 FORN1=832TO894:READQ1:POKEN1,Q1:NEXT
2600 FORN2=896TO958:READQ2:POKEN2,Q2:NEXT
2700 FORN3=960TO1022:READQ3:POKEN3,Q3:NEXT
2750 FORN4=12736TO12798:READQ4:POKEN4,Q4:NEXT:GOSUB30800
2800 FORPP=0TO1STEP0
2900 W=PEEK(56322-AX)AND15:IFJS=2THENGOSUB28500
3000 IFJS=2THENGOTO3200
3100 QP(AX)=-((PEEK(56322-AX)AND16)=0):POKEV+21,7
3200 GOSUB9000
3300 GOSUB24700
3400 GOSUB27400
3500 GOSUB7500
3600 GOSUB8000
3700 IFTY(AX)=1THENGOSUB25200
3750 MN=MN+186:IFMN<>199THENMN=13
3760 POKE2040,MN
3800 IFPEEK(V+29)=0THENGOTO4000
3900 POKEV,X-8:POKEV+1,Y-8:GOTO4100
4000 POKEV,X:POKEV+1,Y
4100 POKEV+3,Y1:POKEV+5,Y2:IFQQ(AX)=0THENGOTO4700
4200 IFQQ(AX)/10000<>INT(QQ(AX)/10000)THENGOTO4700
4300 MEN(AX)=MEN(AX)+1:
4400 H=1
4500 PRINT"MEN"MEN(AX)
4600 GOSUB15200:H=1:GOSUB15200:H=1:GOSUB15200
4700 POKEV+2,X1:POKEV+4,X2
4800 IFAX=1THENPRINT""TAB(32);" "
4900 IFAX=1THENPRINT""TAB(32);"";QQ(1)
5000 IFAX=2THENPRINT""TAB(32);" "
5100 IFAX=2THENPRINT""TAB(32);"";QQ(2)
5200 GOSUB9000
5300 IFEE(AX)=608THENGOSUB13400
5400 B=X-16:A=Y-47
5500 F=(B/8)+(A*5)+1024
5600 IFPEEK(F)=46THENEE(AX)=EE(AX)+1:QQ(AX)=QQ(AX)+DE(AX)
5700 IFPEEK(F)=46THENPOKEF,32
5800 NEXTPP
5900 REM PAC DATA
6000 DATA0,0,0,0
6100 DATA254,0,1,255,0,3,251,128,7,255,192,15,255,224,31,255,192,31,255
6200 DATA0,31,252,0
6300 DATA31,252,0,31,255,0,31,255,192,15,255,224,7,255,192,3,255,128,1,255,0,0,254
6400 DATA,,,,,,,,,,,
6500 REM MONSTER DATA
6600 DATA0,0,0,0,0,124,0,0,254,0,1,255,0,3,153,128,3,153,128,7,255,192,7,255,192,7
6700 DATA255,192,7,255,192,7,255,192,7,255,192,7,255,192,7,255,192,7,255,192,7
6800 DATA125,192,6,52,192,4,16,64,0,0,0,0,0,0,0,0,0,0,0,0
6900 REM MONSTER DATA(#2)
7000 DATA0,0,0,0,0,0
7100 DATA0,0,0,0,124,0,0,254,0,1,255,0,3,153,128,3,153,128,7,255,192,7,255,192,7
7200 DATA255,192,7,255,192,7,255,192,7,255,192,7,255,192,7,255,192,7,255,192,7
7300 DATA125,192,6,52,192,4,16,64,,,,
7310 DATA254,,1,255,,3,251,128,7,255,192,15,255,224,31,255,240,31,255
7320 DATA240,31,255,240
7330 DATA31,255,240,31,255,240,31,255,192,15,255,224,7,255,192,3,255,128,1
7340 DATA255,,,254,,,,,,,,,,,,,,,,,,,,,,,
7400 RETURN
7500 IFW=14THENT=0:I=-8
7600 IFW=13THENT=0:I=8
7700 IFW=11THENI=0:T=-8
7800 IFW=7THENI=0:T=8
7900 RETURN
8000 X=X+T:Y=Y+I
8100 IF Y=<57 THENA=23
8200 IF X=<21 THENA=15
8300 IF Y=>225 THENA=23
8400 IF X=>254 THENA=15
8500 IFA<>23THENGOTO8700
8600 Y=Y-I:W=15:A=0
8700 IFA<>15 THENRETURN
8800 X=X-T:W=15:A=0
8900 RETURN
9000 IFY>Y1THENZZ=SA(AX)
9100 IFY<Y1THENZZ=-SA(AX)
9200 IFX<X1THENWW=-SA(AX)
9300 IFX>X1THENWW=SA(AX)
9400 Y1=Y1+ZZ+SGN(ZZ):X1=X1+WW+SGN(WW)
9500 IFY>Y2THENZS=SA(AX)
9600 IFY<Y2THENZS=-SA(AX)
9700 IFX<X2THENWS=-SA(AX)
9800 IFX>X2THENWS=SA(AX)
9900 Y2=Y2+ZS:X2=X2+WS
10000 IFPEEK(V+30)<>0THENGOSUB12800
10100 IFXN=1THENMEN(AX)=MEN(AX)-1
10200 IFXN=1THENPOKEV+21,1:GOTO10400
10300 RETURN
10400 IFYQ=1THENGOTO10600
10500 IFMEN(1)<=-1THENYC=YC+1:YQ=1
10600 IFYD=1THENGOTO10800
10700 IFMEN(2)<=-1THENYC=YC+2:YD=1
10800 IFYQ=1THENAX=1
10900 IFYD=1THENAX=2
11000 Z=0:QP=0
11100 GOSUB28000:GOSUB26300
11200 GOSUB29200
11300 IFYY$<>"1"THENAX=AX+1:IFAX=3THENAX=1
11400 IFYC=3THENGOTO22600
11500 IFYC=1ANDYY$="1"THENGOTO22600
11600 GOSUB26300
11700 GOSUB29900
11800 XN=0
11900 PRINT""AX
12000 PRINT"MEN"MEN(AX)
12100 PRINT"LEVEL"LEVEL(AX)
12200 PRINT"PANIC"LL(AX)
12300 X=40:Y=63:X1=224:Y1=72:X2=40:Y2=198
12400 POKEV+1,Y:POKEV+3,Y1:POKEV+5,Y2
12500 POKEV,X:POKEV+2,X1:POKEV+4,X2
12600 POKEV+23,0:POKEV+29,0:VD(AX)=0:TY(AX)=0:QP(AX)=0:Z=0
12700 RETURN
12800 IF TY(AX)=1THENRETURN
12900 A=PEEK(V+30):IFA<>3ANDA<>5THENRETURN
13000 XN=1
13100 POKEV+2,1:POKEV+4,1
13200 RETURN
13300 FORTR=1TO50:NEXTTR
13400 PRINT"[147]":FORX=1TO22:PRINT"[166].............................[166]":NEXT
13500 FORX=1TO31:PRINT"[166]";:NEXT
13600 PRINT"":FORX=1TO31:PRINT"[166]";:NEXTX
13700 PRINT"PLAYER#"
13800 PRINT" 1": U=1:AX=1
13900 PRINT"SCORE 1"
14000 PRINT" [146]"
14100 PRINT"SCORE 2"
14200 PRINT" [146]"
14300 PRINT"MEN"MEN(AX)
14400 PRINT"LEVEL"LEVEL(AX)
14500 PRINT"HIGH"
14600 PRINT"SCORE"
14700 PRINT""BR$
14800 PRINT""HS
14900 PRINT"";TAB(33)"PANIC"LL(AX)
15000 PRINT"BY MIKE MUNNELLY"
15100 POKEV+23,0:POKEV+29,0:VD(AX)=0:TY(AX)=0:QP(AX)=0:Z=0
15200 FORR=1TO75:NEXTR:POKES+1,20:POKES+5,9:POKES+6,9:POKES+24,15
15300 POKE S+4,17:FORD=1TO40:NEXTD:POKES+4,16:IFH=1THENH=0:RETURN
15400 SA(AX)=SA(AX)+1:LL(AX)=LL(AX)+1
15500 FORR=1TO75:NEXTR:POKES+1,20:POKES+5,9:POKES+6,9:POKES+24,15
15600 POKE S+4,17:FORD=1TO40:NEXTD:POKES+4,16
15700 EE(AX)=0:LEVEL(AX)=LEVEL(AX)+1
15800 DE(AX)=DE(AX)+50:QP=0
15900 X=40:Y=63:X1=224:Y1=72:X2=40:Y2=198
16000 PRINT"LEVEL"LEVEL(AX)
16100 PRINT"PANIC"LL(AX)
16200 FORR=1TO75:NEXTR:POKES+1,20:POKES+5,9:POKES+6,9:POKES+24,15
16300 RETURN
16400 V=53248:POKEV,1:POKEV+2,1:POKEV+4,1:FORQ=STOS+24:POKEQ,0:NEXT:POKEV+21,0
16500 PRINT"[158]PAC HUNT":GOSUB21400
16600 PRINT"THE GHOST MONSTERS HAVE FINALLY BLOWN"
16700 PRINT"THEIR STACK. THEY ARE CHASING YOU"
16800 PRINT"ALL OVER THE PLACE. IT IS YOUR MISSION"
16900 PRINT"TO ESCAPE THE GHOST MONSTERS AND LIVE"
17000 PRINT"TO GET TO THE NEXT LEVEL. YOUR SCORE"
17100 PRINT"IS THE NUMBER OF DOTS YOU EAT. IF"
17200 PRINT"YOU EAT ALL THE DOTS ON ALEVEL"
17300 PRINT"YOU ARE ADVANCED TO THE NEXT"
17400 PRINT"LEVEL WHERE THE GHOST MONSTERS "
17500 PRINT"MOVE EVEN FASTER. YOU GET A"
17600 PRINT"FREE MAN AT 10, 20, 30... THOUSAND."
17700 PRINT"IF YOU GET IN REAL TROUBLE, PRESS THE"
17800 PRINT"FIRE BUTTON, IT WILL SAVE YOU. IT "
17900 PRINT"WILL NOT LAST LONG SO ESCAPE AS FAST"
18000 PRINT"AS YOU CAN. YOU GET THREE TO BEGIN, AND"
18100 PRINT"ONE EVERY LEVEL. SO BE CAREFUL."
18200 PRINT"YOU WILL HAVE TO WAIT AFTER YOU DIE"
18300 PRINT"AND AT THE BEGINING. DON'T WORRY"
18400 PRINT"PLAYER 1 IS ON JOYSTICK ONE AND PLAYER"
18500 PRINT"2 IS ON JOYSTICK 2. GOOD LUCK."
18600 PRINT"DO YOU WANT 1 OR 2 PLAYERS"
18700 GET YY$:IFYY$=""THENGOTO18700
18800 PRINT"[147]ENTER JOYSTICKS(1) OR THE KEYBOARD(2)"
18900 GETJS:IFJS=0THENGOTO18900
19000 IFJS=1THENGOTO19600
19100 INPUT"WHAT KEY FOR UP";U$
19200 INPUT"WHAT KEY FOR DOWN";D$
19300 INPUT"WHAT KEY FOR LEFT";L$
19400 INPUT"WHAT KEY FOR RIGHT";R$
19500 INPUT"WHAT KEY FOR FIRE";F$
19600 PRINT"[147]PLAYER 1. WHAT LEVEL TO START AT? 1"
19700 GETA$:IFA$=CHR$(13)THENA$="1"
19800 IFA$=""THENGOTO19700
19900 LEVEL(1)=VAL(A$)
20000 DE(1)=50:DE(2)=50:SA(1)=1
20100 SA(1)=SA(1)+LEVEL(1)
20200 DE(1)=DE(1)*LEVEL(1)
20300 IFYY$="1"THENRETURN
20400 PRINT"[147]PLAYER 2. WHAT LEVEL TO START AT? ";A$
20500 GETB$
20600 IFB$=CHR$(13)THENB$=A$:GOTO20900
20700 IFB$<>""THENGOTO20900
20800 GOTO20500
20900 LEVEL(2)=VAL(B$)
21000 SA(2)=1
21100 SA(2)=SA(2)+LEVEL(2)
21200 DE(2)=DE(2)*LEVEL(2)
21300 RETURN
21400 PRINT" INSERT COIN(S)"
21500 PRINT" HIGH SCORES"
21600 IFHS=10000THENBR$="C64"
21700 PRINT""BR$
21800 PRINT" "HS
21900 GETA$:IFA$<>""THEN RETURN
22000 GOTO21900
22100 IFYY$="1"THENGOTO22600
22200 AX=AX+1:IFAX=3THENAX=1
22300 IFMEN(AX)=0THENGOTO22600
22400 YY$="1"
22500 RETURN
22600 IFQQ(1)>HSANDQQ(1)>QQ(2)THEN AT=1
22700 FORX=1TO30:GETB$:NEXT
22800 IFQQ(2)>HSANDQQ(2)>QQ(1)THEN AT=2
22900 POKEV,1:POKEV+2,1:POKEV+4,1
23000 IFAT=1THENINPUT"[147]PLAYER 1. ENTER INITIALS";BT$
23100 IFAT=2THENINPUT"[147]PLAYER 2. ENTER INITIALS";BT$
23200 BR$=LEFT$(BT$,3)
23300 IFAT=1THENHS=QQ(1)
23400 IFAT=2THENHS=QQ(2)
23500 IFQQ(1)<>HSANDQQ(2)<>HSTHENPRINT"[147]"
23600 POKEV,1:POKEV+2,1:POKEV+4,1
23700 IFQQ(1)<>HSANDQQ(2)<>HSTHENPRINT"[147]"
23800 RESTORE
23900 XN=0:EE(1)=0:EE(2)=0:MEN(1)=3:MEN(2)=3:QQ(1)=0:QQ(2)=0:AT=0:YY$="0"
24000 YC=0:YD=0:YQ=0
24100 X=40:Y=63:X1=224:Y1=72:X2=40:Y2=198:DE(1)=10:DE(2)=10
24200 POKEV+1,Y:POKEV+3,Y1:POKEV+5,Y2
24300 POKEV,X:POKEV+2,X1:POKEV+4,X2
24400 GOTO100
24500 IFHS<>0THENRETURN
24600 BR$="C64":HS=10000:RETURN
24700 IFQP(AX)=0THENRETURN
24800 IFLL(AX)=<0THENRETURN
24900 IFTY(AX)=1THENRETURN
25000 LL(AX)=LL(AX)-1:
25100 TY(AX)=1
25200 VD(AX)=VD(AX)+1:
25300 IFVD(AX)=30THENTY(AX)=0
25400 IFVD(AX)=30THENVD(AX)=0
25500 IFVD(AX)=25THENPOKEV+39,1
25600 IFVD(AX)=29THENPOKEV+39,7
25700 IFVD(AX)=1THEN:POKEV+29,1:POKEV+23,1
25800 IFVD(AX)=29THENPOKEV+29,0:POKEV+23,0
25900 IFVD(AX)=29THENQP(AX)=0
26000 IFVD(AX)=1THENQP(AX)=1
26100 IFVD(AX)=1THENPRINT"";TAB(33)"PANIC"LL(AX)
26200 RETURN
26300 IFYC=1THENPRINT"";TAB(33)"GAME [157][157][157][157][157][157][157]OVER[157][157][157][157]PLAYER1"
26400 IFYC=2THENPRINT"";TAB(33)"GAME [157][157][157][157][157][157][157]OVER[157][157][157][157]PLAYER2"
26500 IFYC=3THENPRINT"GAME OVER[146]":GOTO22600
26600 POKEV+23,0:POKEV+29,0:VD(AX)=0:TY(AX)=0
26700 IFYC=0THENRETURN
26800 RETURN
26900 GOTO22600
27000 X=40:Y=63:X1=224:Y1=72:X2=40:Y2=198:DE(1)=10:DE(2)=10
27100 POKEV+1,Y:POKEV+3,Y1:POKEV+5,Y2
27200 POKEV,X:POKEV+2,X1:POKEV+4,X2
27300 RETURN
27400 POKES+1,10
27500 POKES+5,4
27600 POKES+6,8
27700 POKES+24,15
27800 POKES+4,19
27900 POKES+4,16:RETURN
28000 TP=15
28100 TP=TP-1:IFTP=10THENTP=6
28200 IFTP<>5THEN28400
28300 POKES+1,0:RETURN
28400 POKES+1,TP:POKES+4,17:POKES+5,128:POKES+6,128:FORU=1TO200:NEXTU:GOTO28100
28500 GET TE$:IFTE$=U$THENW=14
28600 IFTE$=D$THENW=13
28700 IFTE$=R$THENW=7
28800 IFTE$=L$THENW=11
28900 IFTE$=U$THENW=14
29000 IFTE$=F$THENZ=1
29100 RETURN
29200 IFYY$="1"THENRETURN
29300 IFJK=0THENGOSUB30500
29400 IFAX=1THENGOTO29700
29500 FORTU=1064TO1974:VY(TU)=PEEK(TU):NEXTTU
29600 RETURN
29700 FORTU=1064TO1974:VZ(TU)=PEEK(TU):NEXTTU
29800 RETURN
29900 IFYY$="1"THENRETURN
30000 IFAX=1THENGOTO30300
30100 FORTU=1064TO1974:POKETU,VY(TU):POKETU+54272,1:NEXTTU
30200 RETURN
30300 FORTU=1064TO1974:POKETU,VZ(TU):POKETU+54272,1:NEXTTU
30400 RETURN
30500 DIMVZ(2000)
30600 DIMVY(2000)
30700 JK=1:RETURN
30800 AX=1:GOSUB29200
30900 AX=2:GOSUB29200
31000 AX=1
31100 RETURN